# -*- coding: utf-8 -*-
#*******************************************************************************
#   tab界面
#*******************************************************************************
from PyQt5.QtWidgets import ( QApplication,QMainWindow,QWidget,QVBoxLayout,QHBoxLayout,QLabel,QScrollArea,QGridLayout,QPushButton,QProgressBar,QCheckBox )
from PyQt5.QtGui import QIcon,QPixmap
from PyQt5.QtCore import QCoreApplication,QRect

# 封装Qt Widget，提供给tab_widget
# 每个tab界面包含组件：
# 1.显示封面的标签
# 2.显示可下载卷的滚动区
# 3.用于全选和清空、下载的按钮
# 4.显示下载进度的进度条
class CCTabWidget(QWidget):
    def __init__(self,parent=None):
        super().__init__(parent)
        self.component_init()
    
    # 组件初始化
    def component_init(self):
        # tab widget 布局
        self.verticalLayout=QVBoxLayout(self)
        self.verticalLayout.setContentsMargins(0,0,0,0)
        self.verticalLayout.setObjectName("verticalLayout")
        # tab 显示漫画信息的widget的布局
        self.tab_widget=QHBoxLayout()
        self.tab_widget.setObjectName("tagWidget")
        # 左半边：添加一个label显示漫画封面
        self.lb_cover=QLabel(self)
        self.lb_cover.setObjectName("lb_cover")
        self.tab_widget.addWidget(self.lb_cover)
        # 右半边： 布局
        self.infos=QVBoxLayout()
        self.infos.setObjectName("infos")
        # 滚动区
        self.scroll_area=QScrollArea(self)
        self.scroll_area.setWidgetResizable(True)
        self.scroll_area.setObjectName("scroll_area")
        # 滚动区widget
        self.wt_vols_info=QWidget()
        self.wt_vols_info.setGeometry(QRect(0,0,374,447))
        self.wt_vols_info.setObjectName("wt_vols_info")
        # 滚动区布局
        self.gridLayout=QGridLayout(self.wt_vols_info)
        self.gridLayout.setContentsMargins(6,6,6,6)
        self.gridLayout.setObjectName("gridLayout")
        # 设置滚动区widget，添加到整体右边
        self.scroll_area.setWidget(self.wt_vols_info)
        self.infos.addWidget(self.scroll_area)
        # 按钮布局及按钮：下载，清除，全选，占位按钮及label
        self.opt=QHBoxLayout()
        self.opt.setObjectName("opt")
        self.btn_down=QPushButton(self)
        self.btn_down.setObjectName("btn_down")
        self.opt.addWidget(self.btn_down)
        self.lb_empty=QLabel(self)
        self.lb_empty.setObjectName("lb_empty")
        self.opt.addWidget(self.lb_empty)
        self.btn_vols=QPushButton(self)
        self.btn_vols.setEnabled(False)
        self.btn_vols.setFlat(True)
        self.btn_vols.setObjectName("btn_vols")
        self.opt.addWidget(self.btn_vols)
        self.btn_clear=QPushButton(self)
        self.btn_clear.setObjectName("btn_clear")
        self.opt.addWidget(self.btn_clear)
        self.btn_all=QPushButton(self)
        self.btn_all.setObjectName("btn_all")
        self.opt.addWidget(self.btn_all)
        self.opt.setStretch(1,1)
        self.opt.setStretch(2,1)
        self.infos.addLayout(self.opt)
        # 添加信息到布局中
        self.tab_widget.addLayout(self.infos)
        # 设置左右两边比例
        self.tab_widget.setStretch(0,1)
        self.tab_widget.setStretch(1,1)
        # 添加到主widget上
        self.verticalLayout.addLayout(self.tab_widget)
        # 添加进度条显示
        self.probar_down_pics=QProgressBar(self)
        self.probar_down_pics.setProperty("value",0)
        self.probar_down_pics.setObjectName("probar_down_pics")
        self.verticalLayout.addWidget(self.probar_down_pics)

        # 文字显示
        self.retranslate()

    def retranslate(self):
        _translate=QCoreApplication.translate
        self.lb_cover.setText(_translate("ComicCave","这里显示封面"))
        self.lb_empty.setText(_translate("ComicCave",""))
        self.btn_vols.setText(_translate("ComicCave",""))
        self.btn_down.setText(_translate("ComicCave","下载"))
        self.btn_clear.setText(_translate("ComicCave","清除"))
        self.btn_all.setText(_translate("ComicCave","全选"))

# 封装Qt CheckBox，添加相对应的卷信息
class CCCheckBox(QCheckBox):
    def __init__(self,vol,parent=None):
        super().__init__(vol.title,parent)
        self.vol=vol
    def __str__(self):
        return self.vol.__str__()